<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>DbLockNotGrantedException</title>
    <link rel="stylesheet" href="apiReference.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB C++ API Reference" />
    <link rel="up" href="dbexception.html" title="Chapter 6. The DbException Class" />
    <link rel="prev" href="dbdeadlock.html" title="DbDeadlockException" />
    <link rel="next" href="dbmemory.html" title="DbMemoryException" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 11.2.5.3</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">DbLockNotGrantedException</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="dbdeadlock.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 6. The DbException Class</th>
          <td width="20%" align="right"> <a accesskey="n" href="dbmemory.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="dblocknotgranted"></a>DbLockNotGrantedException</h2>
          </div>
        </div>
      </div>
      <pre class="programlisting">#include &lt;db_cxx.h&gt;

class DbLockNotGrantedException : public DbException {
public:
    db_lockop_t get_op() const;
    db_lockmode_t get_mode() const;
    const Dbt* get_obj() const;
    DbLock *get_lock() const;
    int get_index() const;
}; </pre>
      <p>
        This information describes the <code class="classname">DbLockNotGrantedException</code> class and how 
        it is used by the various Berkeley DB classes.
    </p>
      <p>
        A <code class="classname">DbLockNotGrantedException</code> is thrown when
        lock or transaction timeouts have been configured, a database operation has timed out, and the
        <a class="link" href="envset_flags.html#envset_flags_DB_TIME_NOTGRANTED">DB_TIME_NOTGRANTED</a> 
        configuration flag has been specified.
    </p>
      <p>
        Additionally <code class="classname">DbLockNotGrantedException</code> is thrown when a Berkeley DB
        Concurrent Data Store database environment configured for lock timeouts was unable to grant
        a lock in the allowed time.
    </p>
      <p>
        Finally, <code class="classname">DbLockNotGrantedException</code> is thrown when a lock requested using the
        <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a>
        or
        <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a>
        methods, where the <a class="link" href="lockvec.html#vec_DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a>
        flag or lock timers were configured, could not be granted before the wait-time expired.
    </p>
      <p>
        The <a class="link" href="dbexception.html" title="Chapter 6. The DbException Class">DbException</a> errno value is set to
        <code class="literal">DB_LOCK_NOTGRANTED</code>.
    </p>
      <p>
        The following getter methods are available on this class:
    </p>
      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p>
                <code class="methodname">get_op()</code>
            </p>
            <p>
                Returns <code class="literal">DB_LOCK_GET</code> when <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a>
                was called, and returns the <span class="bold"><strong>op</strong></span> for the failed
                <code class="literal">DB_LOCKREQ</code> when <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a>
                was called. If this exception is raised due to a database
                operation, <code class="literal">DB_LOCK_GET</code> is returned.
            </p>
          </li>
          <li>
            <p>
                <code class="methodname">get_mode()</code>
            </p>
            <p>
                Returns the <span class="bold"><strong>mode</strong></span> parameter when 
                <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a> was called, and returns the
                <span class="bold"><strong>mode</strong></span> for the failed <code class="literal">DB_LOCKREQ</code>
                when <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a> was called.
                If this exception is raised due to a database operation, 
                <code class="literal">DB_LOCK_NG</code> is returned.
            </p>
          </li>
          <li>
            <p>
                <code class="methodname">get_obj()</code>
            </p>
            <p>
                Returns the <span class="bold"><strong>object</strong></span> parameter when 
                <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a> was called, and returns the
                <span class="bold"><strong>object</strong></span> for the failed <code class="literal">DB_LOCKREQ</code>
                when <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a> was called.
                The <a class="link" href="dbt.html" title="Chapter 4.  The Dbt Handle">Dbt</a> pointer may or may not refer valid
                memory, depending on whether the <a class="link" href="dbt.html" title="Chapter 4.  The Dbt Handle">Dbt</a>
                used in the call to the failed <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a>
                or <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a> method is still in
                scope and has not been deleted.
            </p>
          </li>
          <li>
            <p>
                <code class="methodname">get_lock()</code>
            </p>
            <p>
                Returns NULL when <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a> was called, 
                and returns the <span class="bold"><strong>lock</strong></span> in the failed <code class="literal">DB_LOCKREQ</code>
                when <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a> was called.
                If this exception is raised due to a database operation, NULL is returned.
            </p>
          </li>
          <li>
            <p>
                <code class="methodname">get_index()</code>
            </p>
            <p>
                Returns <code class="literal">-1</code> when <a class="xref" href="lockget.html" title="DbEnv::lock_get()">DbEnv::lock_get()</a> was called, 
                and returns the index of the failed <code class="literal">DB_LOCKREQ</code>
                when <a class="xref" href="lockvec.html" title="DbEnv::lock_vec()">DbEnv::lock_vec()</a> was called.
                If this exception is raised due to a database operation, 
                <code class="literal">0</code> is returned.
            </p>
          </li>
        </ul>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="dbdeadlock.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="dbexception.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="dbmemory.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">DbDeadlockException </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> DbMemoryException</td>
        </tr>
      </table>
    </div>
  </body>
</html>
